from .models import *
from sqlalchemy import func


# 查询用户表中最大的user_id
def get_max_user_id():
    max_id = db.session.query(func.max(Users.user_id)).scalar()
    # 如果表为空，则返回1
    if max_id is None:
        return 1
    # 否则，返回最大的user_id
    return max_id + 1


# 查询用户表中最大的user_id
def get_user_id(user_name):
    user_id = Users.query.filter_by(user_name=user_name).first()
    # 如果表为空，则返回1
    if user_id is None:
        return 1
    # 否则，返回最大的user_id
    return user_id


# 查询用户表中最大的user_id
def get_max_question_id():
    max_id = db.session.query(func.max(Questions.question_id)).scalar()
    # 如果表为空，则返回1
    if max_id is None:
        return 1
    # 否则，返回最大的user_id
    return max_id + 1


# 查询数据库，找到匹配的用户名的用户
def validate_user(username, password):
    user = Users.query.filter_by(user_number=username).first()

    # 如果用户不存在或密码不匹配，返回 False
    if user is None or user.user_password != password:
        return False

    # 如果用户存在且密码匹配，返回 True
    return True


# 返回头像地址
def get_user_pic_url(user_id):
    user = Picture.query.filter_by(picture_object=user_id, picture_ob_type='user').first()
    return user.picture_address


# 判断该用户是否有重名的收藏夹
def is_exist_folder(user_id, favoritebag_name):
    folder = Favoritebag.query.filter_by(favoritebag_name=favoritebag_name,
                                         favoritebag_user=user_id).first()
    if folder is None:
        return False
    else:
        return True


# 根据favorite_name来检索favoritebag_id
def get_favoritebag_id(favoritebag_name, user_id):
    favoritebag = Favoritebag.query.filter_by(favoritebag_name=favoritebag_name, favoritebag_user=user_id).first()
    return favoritebag.favoritebag_id


# 查询用户是否被关注
def is_followed(user_id, follow_id):
    follow = AttentionFan.query.filter_by(af_parent=user_id, af_child=follow_id).first()
    if follow is None:
        return False
    else:
        return True
